const fs = require('fs');
const path = require('path');

// 更新 project.config.json 文件的 minified 设置
function updateProjectConfig() {
  const configPath = path.join(__dirname, 'unpackage', 'dist', 'dev', 'mp-weixin', 'project.config.json');
  
  if (fs.existsSync(configPath)) {
    try {
      const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
      
      // 修改 minified 设置为 true
      if (config.setting) {
        config.setting.minified = true;
        console.log('已将 minified 设置为 true');
      }
      
      // 写回文件
      fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf8');
      console.log('project.config.json 更新成功');
    } catch (err) {
      console.error('更新 project.config.json 失败:', err);
    }
  } else {
    console.warn('找不到 project.config.json 文件');
  }
}

// 更新 manifest.json 文件启用组件按需注入
function updateManifest() {
  const manifestPath = path.join(__dirname, 'manifest.json');
  
  if (fs.existsSync(manifestPath)) {
    try {
      const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
      
      // 为各平台设置组件按需注入
      const platforms = ['app-plus', 'mp-weixin', 'mp-alipay', 'mp-baidu', 'mp-toutiao'];
      
      platforms.forEach(platform => {
        if (manifest[platform]) {
          // 确保 usingComponents 为 true
          manifest[platform].usingComponents = true;
          
          // 设置组件按需注入（如果平台支持）
          if (platform === 'mp-weixin' || platform === 'app-plus') {
            manifest[platform].lazyCodeLoading = 'requiredComponents';
          }
        }
      });
      
      // 写回文件
      fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2), 'utf8');
      console.log('manifest.json 更新成功');
    } catch (err) {
      console.error('更新 manifest.json 失败:', err);
    }
  } else {
    console.warn('找不到 manifest.json 文件');
  }
}

// 执行更新
updateProjectConfig();
updateManifest();

console.log('配置更新完成，请重新编译项目'); 